#include "Pantalla.h"

Pantalla_t::Pantalla_t()
{}

Pantalla_t::~Pantalla_t()
{
	SDL_Quit();
}

void Pantalla_t::Init(const Dimensiones_t& _dimensiones)
{
	dimensiones = _dimensiones;
	return InitSDL();
}

const Dimensiones_t& Pantalla_t::Dimensiones() const
{
	return dimensiones;
}

SDL_Surface* Pantalla_t::Superficie() const
{
	return screen;
}

Punto Pantalla_t::Centro() const
{
	return Punto(dimensiones.Ancho()/2,dimensiones.Alto()/2);
}

void Pantalla_t::Limpiar()
{
	// TODO: ver si esto es mas rapido que un algoritmo a lo bestia.
	// En caso contrario implementarlo
	SDL_FillRect( screen, NULL, 0 );
}

void Pantalla_t::InitSDL()
{
	screen = NULL;
	if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 ) error("inicializando SDL");

	screen = SDL_SetVideoMode( dimensiones.Ancho() , dimensiones.Alto() , 32, SDL_SWSURFACE );
	if( !screen ) error("inicializando pantalla");
}

void Pantalla_t::error(const char* msg)
{
	cout << "Error: " << msg << endl;
	exit(1);
}

